package com.giibpt.model.entities;

import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

@Entity
@GenericGenerator(
		name = "categoria",
		strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
		parameters = {
				@Parameter(name="sequence_name", value="categoria_sequence"),
				@Parameter(name="initial_value", value="1"),
				@Parameter(name="increment_size", value="1")
		}
)
public class Categoria {
	private Long idCategoria;
	private String nombre;
	private Set<Visitante> visitantes;
	
	@Id
	@GeneratedValue(generator="categoria")
	public Long getIdCategoria() {
		return idCategoria;
	}
	public String getNombre() {
		return nombre;
	}
	
	@OneToMany
	public Set<Visitante> getVisitantes() {
		return visitantes;
	}
	
	public void setIdCategoria(Long idCategoria) {
		this.idCategoria = idCategoria;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public void setVisitantes(Set<Visitante> visitantes) {
		this.visitantes = visitantes;
	}
	
	
	@Override
	public String toString() {
		return nombre;
	}
	
	@Override
	public boolean equals(Object obj) {
		return obj instanceof Categoria 
				&& ((Categoria) obj).getIdCategoria() == getIdCategoria();
		
	}
	
	@Override
	public int hashCode() {
		return 17 * 37 + (idCategoria != null? idCategoria.hashCode(): 0);
	}
	
}
